/*
* Copyright 2016 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.apiman.manager.api.migrator.vms;
import io.apiman.manager.api.core.IApiKeyGenerator;
import io.apiman.manager.api.core.UuidApiKeyGenerator;
import io.apiman.manager.api.migrator.IVersionMigrator;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
/**
* @author eric.wittmann@gmail.com
*/
public class Version122FinalMigrator implements IVersionMigrator {
IApiKeyGenerator keyGenerator = new UuidApiKeyGenerator();
/**
* Constructor.
*/
public Version122FinalMigrator() {
}
/**
* @see io.apiman.manager.api.migrator.IVersionMigrator#migrateMetaData(com.fasterxml.jackson.databind.node.ObjectNode)
*/
@Override
public void migrateMetaData(ObjectNode node) {
}
/**
* @see io.apiman.manager.api.migrator.IVersionMigrator#migrateUser(com.fasterxml.jackson.databind.node.ObjectNode)
*/
@Override
public void migrateUser(ObjectNode node) {
}
/**
* @see io.apiman.manager.api.migrator.IVersionMigrator#migrateGateway(com.fasterxml.jackson.databind.node.ObjectNode)
*/
@Override
public void migrateGateway(ObjectNode node) {
}
/**
* @see io.apiman.manager.api.migrator.IVersionMigrator#migratePlugin(com.fasterxml.jackson.databind.node.ObjectNode)
*/
@Override
public void migratePlugin(ObjectNode node) {
}
/**
* @see io.apiman.manager.api.migrator.IVersionMigrator#migrateRole(com.fasterxml.jackson.databind.node.ObjectNode)
*/
@Override
public void migrateRole(ObjectNode node) {
}
/**
* @see io.apiman.manager.api.migrator.IVersionMigrator#migratePolicyDefinition(com.fasterxml.jackson.databind.node.ObjectNode)
*/
@Override
public void migratePolicyDefinition(ObjectNode node) {
}
/**
* @see io.apiman.manager.api.migrator.IVersionMigrator#migrateOrg(com.fasterxml.jackson.databind.node.ObjectNode)
*/
@Override
public void migrateOrg(ObjectNode node) {
ArrayNode clients = (ArrayNode) node.get("Clients"); //$NON-NLS-1$
if (clients != null && clients.size() > 0) {
for (JsonNode clientNode : clients) {
ObjectNode client = (ObjectNode) clientNode;
ArrayNode versions = (ArrayNode) client.get("Versions"); //$NON-NLS-1$
if (versions != null && versions.size() > 0) {
for (JsonNode versionNode : versions) {
ObjectNode version = (ObjectNode) versionNode;
ObjectNode clientVersionBean = (ObjectNode) version.get("ClientVersionBean"); //$NON-NLS-1$
clientVersionBean.put("apikey", keyGenerator.generate()); //$NON-NLS-1$
ArrayNode contracts = (ArrayNode) version.get("Contracts"); //$NON-NLS-1$
if (contracts != null && contracts.size() > 0) {
for (JsonNode contractNode : contracts) {
ObjectNode contract = (ObjectNode) contractNode;
contract.remove("apikey"); //$NON-NLS-1$
}
}
}
}
}
}
}
}